# 01_斐波那契数列（Fibonacci序列）
# 又称兔子数列，指的是这样一个数列：0、1、1、2、3、5、8、13、21、34、……
# 斐波纳契数列被以递归的方法定义：F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)（n>=2，n∈N*）
# 1、递归法
"""def fib(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n-1) + fib(n-2)
print(fib(6))"""

# 2、迭代法
"""def fib(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        a, b = 0, 1
        # 使用'_'表示我们不关心循环变量的具体值，只关心循环的次数(也可用i)
        for _ in range(2, n+1):
            a, b = b, a+b
        # print(b)
        return b
print(fib(6))"""

# 02_复制列表
# 将一个列表的数据复制到另一个列表里
# extend()方法会直接修改原列表，并返回 None，而不是返回一个新的列表
# append()方法用于将一个元素添加到列表的末尾(这个元素可以是任何类型，包括列表)
# 1、
"""list1 = [1, 2, 3, 4]
list2 = [5, 6, 7]
list1.extend(list2)
print("After extend:", list1)
# After extend: [1, 2, 3, 4, 5, 6, 7]
list1.append(list2)
print("After append:", list1)
# After append: [1, 2, 3, 4, 5, 6, 7, [5, 6, 7]]
list3 = list1 + list2
print(list3)
# [1, 2, 3, 4, 5, 6, 7]"""

# 2、
# 浅拷贝(copy.copy())：
# 复制列表中的元素引用
# 对于不可变类型（如整数、字符串等），这些元素本身不会改变
# 对于可变类型（如列表、字典等），这些元素的引用会被复制，因此修改这些元素会影响原始对象
# 深拷贝 (copy.deepcopy())：
# 创建一个完全独立的拷贝
# 对于所有类型的元素（包括可变类型），都会创建新的对象
"""import copy
list = [1, 2, 3, 4]
list1 = copy.copy(list)
list[0] = 30
print(list)"""

# 03_暂停(一段时间)后输出
import time
time.sleep(3)
print("Hi,my friend~")

